/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Clases;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Bryan
 */
@Entity
@Table(name = "catedraticocurso")
@NamedQueries({
    @NamedQuery(name = "Catedraticocurso.findAll", query = "SELECT c FROM Catedraticocurso c"),
    @NamedQuery(name = "Catedraticocurso.findByIdCatedraticoCurso", query = "SELECT c FROM Catedraticocurso c WHERE c.idCatedraticoCurso = :idCatedraticoCurso")})
public class Catedraticocurso implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idCatedraticoCurso")
    private Short idCatedraticoCurso;
    @JoinColumn(name = "idGradoSeccionCiclo", referencedColumnName = "idGradoSeccionCiclo")
    @ManyToOne(optional = false)
    private Gradoseccionciclo gradoseccionciclo;
    @JoinColumn(name = "idCurso", referencedColumnName = "idCurso")
    @ManyToOne(optional = false)
    private Curso curso;
    @JoinColumn(name = "idCicloCurso", referencedColumnName = "idCicloCurso")
    @ManyToOne(optional = false)
    private Ciclocurso ciclocurso;
    @JoinColumn(name = "idCatedratico", referencedColumnName = "idCatedratico")
    @ManyToOne(optional = false)
    private Catedratico catedratico;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "catedraticocurso")
    private Collection<Cursounidad> cursounidadCollection;

    public Catedraticocurso() {
    }

    public Catedraticocurso(Short idCatedraticoCurso) {
        this.idCatedraticoCurso = idCatedraticoCurso;
    }

    public Short getIdCatedraticoCurso() {
        return idCatedraticoCurso;
    }

    public void setIdCatedraticoCurso(Short idCatedraticoCurso) {
        this.idCatedraticoCurso = idCatedraticoCurso;
    }

    public Gradoseccionciclo getGradoseccionciclo() {
        return gradoseccionciclo;
    }

    public void setGradoseccionciclo(Gradoseccionciclo gradoseccionciclo) {
        this.gradoseccionciclo = gradoseccionciclo;
    }

    public Curso getCurso() {
        return curso;
    }

    public void setCurso(Curso curso) {
        this.curso = curso;
    }

    public Ciclocurso getCiclocurso() {
        return ciclocurso;
    }

    public void setCiclocurso(Ciclocurso ciclocurso) {
        this.ciclocurso = ciclocurso;
    }

    public Catedratico getCatedratico() {
        return catedratico;
    }

    public void setCatedratico(Catedratico catedratico) {
        this.catedratico = catedratico;
    }

    public Collection<Cursounidad> getCursounidadCollection() {
        return cursounidadCollection;
    }

    public void setCursounidadCollection(Collection<Cursounidad> cursounidadCollection) {
        this.cursounidadCollection = cursounidadCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idCatedraticoCurso != null ? idCatedraticoCurso.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Catedraticocurso)) {
            return false;
        }
        Catedraticocurso other = (Catedraticocurso) object;
        if ((this.idCatedraticoCurso == null && other.idCatedraticoCurso != null) || (this.idCatedraticoCurso != null && !this.idCatedraticoCurso.equals(other.idCatedraticoCurso))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "escuela.Catedraticocurso[idCatedraticoCurso=" + idCatedraticoCurso + "]";
    }

}
